-
Notifications
You must be signed in to change notification settings - Fork 84
APP-8003 Add world state store service #695
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
proto/viam/service/worldobjectstore/v1/world_object_store.proto
Outdated
Show resolved
Hide resolved
Removing some folks from review while I tweak things to avoid noise. |
Was there a scope for this? Would be helpful to understand the thinking behind it |
Yes sorry, meant to add a link in the description. Here you go: https://docs.google.com/document/d/1ionvyBa7x3HZU_rwDPBvrAUrQjBrP6sJ10Z_xbBTue8/edit?tab=t.0#heading=h.tcicyojyqi6c The API design has been slightly tweaked based on testing @micheal-parks did, but for the most part things are the same. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This looks good to me from a code perspective based on what was decided on in the scope doc. I wonder though if it would be possible to put this under the app proto instead of the general service proto. I expect this API to change frequently and it seems like there is a lot more leniency towards making breaking changes to the App API as compared to resources
Fair point, I brought this up to steve and he suggested it could live here because it is a new service resource type, but we can mark it as experimental for now, and allow some level of leniency until we have published some Viam-supported visualization modules and are confident with the API. @micheal-parks has also been testing visualizations with the assumption that this is how the API will work, so we have some real-world proof of concepts to work from. I ended up writing the code to implement the I'd be happy to get some more opinions on this before moving forward, though, if you have anyone in mind. |
Note from @erh to use existing world object state |
…world-object-store-service
…viamrobotics/api into APP-8003-add-world-object-store-service
proto/viam/service/worldobjectstore/v1/world_object_store.proto
Outdated
Show resolved
Hide resolved
…viamrobotics/api into APP-8003-add-world-object-store-service
…world-object-store-service
…world-object-store-service
As we are undergoing organizational changes and these APIs are currently in use for high-priority work, I have temporarily reverted the breaking changes. I will only add what is necessary for the world object store service, and supporting point clouds as a geometry type. Further improvements can be done in tandem with the motion team. |
Introducing a new service type, the
WorldStateStoreService
.Visualization modules will utilize this service to retrieve information about the machine's world object store for rendering on the client side.
List of changes:
PointCloud
geometry type and add it to theoneof geometry_type
on theGeometry
messageWorldStateStoreService
with four RPCs:ListUUIDs
returns all transform UUIDsGetTransform
returns a transform by UUIDStreamTransformChangesResponse
opens a stream to broadcast changesDoCommand
sends/receives arbitrary commandsTransform
message:Scope doc: https://docs.google.com/document/d/1ionvyBa7x3HZU_rwDPBvrAUrQjBrP6sJ10Z_xbBTue8/edit?tab=t.0#heading=h.tcicyojyqi6c
RDK change: viamrobotics/rdk#5149